<!doctype html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
  <meta charset="utf-8">
  <title>404Error</title>

  <style>
    body {
      background: #000;
      height: 100vh;
      overflow: hidden;
      display: flex;
      font-family: 'Anton', sans-serif;
      justify-content: center;
      align-items: center;
      -webkit-perspective: 1000px;
      perspective: 1000px;
    }

    div {
      -webkit-transform-style: preserve-3d;
      transform-style: preserve-3d;
    }

    .rail {
      position: absolute;
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      -webkit-transform: rotateX(-30deg) rotateY(-30deg);
      transform: rotateX(-30deg) rotateY(-30deg);
    }
    .rail .stamp {
      position: absolute;
      width: 200px;
      height: 200px;
      display: flex;
      justify-content: center;
      align-items: center;
      background: #141414;
      color: #fff;
      font-size: 7rem;
    }
    .rail .stamp:nth-child(1) {
      -webkit-animation: stampSlide 40000ms -2300ms linear infinite;
      animation: stampSlide 40000ms -2300ms linear infinite;
    }
    .rail .stamp:nth-child(2) {
      -webkit-animation: stampSlide 40000ms -4300ms linear infinite;
      animation: stampSlide 40000ms -4300ms linear infinite;
    }
    .rail .stamp:nth-child(3) {
      -webkit-animation: stampSlide 40000ms -6300ms linear infinite;
      animation: stampSlide 40000ms -6300ms linear infinite;
    }
    .rail .stamp:nth-child(4) {
      -webkit-animation: stampSlide 40000ms -8300ms linear infinite;
      animation: stampSlide 40000ms -8300ms linear infinite;
    }
    .rail .stamp:nth-child(5) {
      -webkit-animation: stampSlide 40000ms -10300ms linear infinite;
      animation: stampSlide 40000ms -10300ms linear infinite;
    }
    .rail .stamp:nth-child(6) {
      -webkit-animation: stampSlide 40000ms -12300ms linear infinite;
      animation: stampSlide 40000ms -12300ms linear infinite;
    }
    .rail .stamp:nth-child(7) {
      -webkit-animation: stampSlide 40000ms -14300ms linear infinite;
      animation: stampSlide 40000ms -14300ms linear infinite;
    }
    .rail .stamp:nth-child(8) {
      -webkit-animation: stampSlide 40000ms -16300ms linear infinite;
      animation: stampSlide 40000ms -16300ms linear infinite;
    }
    .rail .stamp:nth-child(9) {
      -webkit-animation: stampSlide 40000ms -18300ms linear infinite;
      animation: stampSlide 40000ms -18300ms linear infinite;
    }
    .rail .stamp:nth-child(10) {
      -webkit-animation: stampSlide 40000ms -20300ms linear infinite;
      animation: stampSlide 40000ms -20300ms linear infinite;
    }
    .rail .stamp:nth-child(11) {
      -webkit-animation: stampSlide 40000ms -22300ms linear infinite;
      animation: stampSlide 40000ms -22300ms linear infinite;
    }
    .rail .stamp:nth-child(12) {
      -webkit-animation: stampSlide 40000ms -24300ms linear infinite;
      animation: stampSlide 40000ms -24300ms linear infinite;
    }
    .rail .stamp:nth-child(13) {
      -webkit-animation: stampSlide 40000ms -26300ms linear infinite;
      animation: stampSlide 40000ms -26300ms linear infinite;
    }
    .rail .stamp:nth-child(14) {
      -webkit-animation: stampSlide 40000ms -28300ms linear infinite;
      animation: stampSlide 40000ms -28300ms linear infinite;
    }
    .rail .stamp:nth-child(15) {
      -webkit-animation: stampSlide 40000ms -30300ms linear infinite;
      animation: stampSlide 40000ms -30300ms linear infinite;
    }
    .rail .stamp:nth-child(16) {
      -webkit-animation: stampSlide 40000ms -32300ms linear infinite;
      animation: stampSlide 40000ms -32300ms linear infinite;
    }
    .rail .stamp:nth-child(17) {
      -webkit-animation: stampSlide 40000ms -34300ms linear infinite;
      animation: stampSlide 40000ms -34300ms linear infinite;
    }
    .rail .stamp:nth-child(18) {
      -webkit-animation: stampSlide 40000ms -36300ms linear infinite;
      animation: stampSlide 40000ms -36300ms linear infinite;
    }
    .rail .stamp:nth-child(19) {
      -webkit-animation: stampSlide 40000ms -38300ms linear infinite;
      animation: stampSlide 40000ms -38300ms linear infinite;
    }
    .rail .stamp:nth-child(20) {
      -webkit-animation: stampSlide 40000ms -40300ms linear infinite;
      animation: stampSlide 40000ms -40300ms linear infinite;
    }

    @-webkit-keyframes stampSlide {
      0% {
        -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(130px);
        transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(130px);
      }
      100% {
        -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(-3870px);
        transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(-3870px);
      }
    }

    @keyframes stampSlide {
      0% {
        -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(130px);
        transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(130px);
      }
      100% {
        -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(-3870px);
        transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(-3870px);
      }
    }
    .world {
      -webkit-transform: rotateX(-30deg) rotateY(-30deg);
      transform: rotateX(-30deg) rotateY(-30deg);
    }
    .world .forward {
      position: absolute;
      -webkit-animation: slide 2000ms linear infinite;
      animation: slide 2000ms linear infinite;
    }
    .world .box {
      width: 200px;
      height: 200px;
      -webkit-transform-origin: 100% 100%;
      transform-origin: 100% 100%;
      -webkit-animation: roll 2000ms cubic-bezier(1, 0.01, 1, 1) infinite;
      animation: roll 2000ms cubic-bezier(1, 0.01, 1, 1) infinite;
    }
    .world .box .wall {
      position: absolute;
      width: 200px;
      height: 200px;
      background: rgba(10, 10, 10, 0.8);
      border: 1px solid #fafafa;
      box-sizing: border-box;
    }
    .world .box .wall::before {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      color: #fff;
      font-size: 7rem;
    }
    .world .box .wall:nth-child(1) {
      -webkit-transform: translateZ(100px);
      transform: translateZ(100px);
    }
    .world .box .wall:nth-child(2) {
      -webkit-transform: rotateX(180deg) translateZ(100px);
      transform: rotateX(180deg) translateZ(100px);
    }
    .world .box .wall:nth-child(3) {
      -webkit-transform: rotateX(90deg) translateZ(100px);
      transform: rotateX(90deg) translateZ(100px);
    }
    .world .box .wall:nth-child(3)::before {
      -webkit-transform: rotateX(180deg) rotateZ(90deg) translateZ(-1px);
      transform: rotateX(180deg) rotateZ(90deg) translateZ(-1px);
      -webkit-animation: zeroFour 4000ms -2000ms linear infinite;
      animation: zeroFour 4000ms -2000ms linear infinite;
    }
    .world .box .wall:nth-child(4) {
      -webkit-transform: rotateX(-90deg) translateZ(100px);
      transform: rotateX(-90deg) translateZ(100px);
    }
    .world .box .wall:nth-child(4)::before {
      -webkit-transform: rotateX(180deg) rotateZ(-90deg) translateZ(-1px);
      transform: rotateX(180deg) rotateZ(-90deg) translateZ(-1px);
      -webkit-animation: zeroFour 4000ms -2000ms linear infinite;
      animation: zeroFour 4000ms -2000ms linear infinite;
    }
    .world .box .wall:nth-child(5) {
      -webkit-transform: rotateY(90deg) translateZ(100px);
      transform: rotateY(90deg) translateZ(100px);
    }
    .world .box .wall:nth-child(5)::before {
      -webkit-transform: rotateX(180deg) translateZ(-1px);
      transform: rotateX(180deg) translateZ(-1px);
      -webkit-animation: zeroFour 4000ms linear infinite;
      animation: zeroFour 4000ms linear infinite;
    }
    .world .box .wall:nth-child(6) {
      -webkit-transform: rotateY(-90deg) translateZ(100px);
      transform: rotateY(-90deg) translateZ(100px);
    }
    .world .box .wall:nth-child(6)::before {
      -webkit-transform: rotateX(180deg) rotateZ(180deg) translateZ(-1px);
      transform: rotateX(180deg) rotateZ(180deg) translateZ(-1px);
      -webkit-animation: zeroFour 4000ms linear infinite;
      animation: zeroFour 4000ms linear infinite;
    }

    @-webkit-keyframes zeroFour {
      0% {
        content: '4';
      }
      100% {
        content: '0';
      }
    }

    @keyframes zeroFour {
      0% {
        content: '4';
      }
      100% {
        content: '0';
      }
    }
    @-webkit-keyframes roll {
      0% {
        -webkit-transform: rotateZ(0deg);
        transform: rotateZ(0deg);
      }
      85% {
        -webkit-transform: rotateZ(90deg);
        transform: rotateZ(90deg);
      }
      87% {
        -webkit-transform: rotateZ(88deg);
        transform: rotateZ(88deg);
      }
      90% {
        -webkit-transform: rotateZ(90deg);
        transform: rotateZ(90deg);
      }
      100% {
        -webkit-transform: rotateZ(90deg);
        transform: rotateZ(90deg);
      }
    }
    @keyframes roll {
      0% {
        -webkit-transform: rotateZ(0deg);
        transform: rotateZ(0deg);
      }
      85% {
        -webkit-transform: rotateZ(90deg);
        transform: rotateZ(90deg);
      }
      87% {
        -webkit-transform: rotateZ(88deg);
        transform: rotateZ(88deg);
      }
      90% {
        -webkit-transform: rotateZ(90deg);
        transform: rotateZ(90deg);
      }
      100% {
        -webkit-transform: rotateZ(90deg);
        transform: rotateZ(90deg);
      }
    }
    @-webkit-keyframes slide {
      0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
      }
      100% {
        -webkit-transform: translateX(-200px);
        transform: translateX(-200px);
      }
    }
    @keyframes slide {
      0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
      }
      100% {
        -webkit-transform: translateX(-200px);
        transform: translateX(-200px);
      }
    }
  </style>
</head>
<body>

<div class="rail">
  <div class="stamp four">4</div>
  <div class="stamp zero">0</div>
  <div class="stamp four">4</div>
  <div class="stamp zero">0</div>
  <div class="stamp four">4</div>
  <div class="stamp zero">0</div>
  <div class="stamp four">4</div>
  <div class="stamp zero">0</div>
  <div class="stamp four">4</div>
  <div class="stamp zero">0</div>
  <div class="stamp four">4</div>
  <div class="stamp zero">0</div>
  <div class="stamp four">4</div>
  <div class="stamp zero">0</div>
  <div class="stamp four">4</div>
  <div class="stamp zero">0</div>
  <div class="stamp four">4</div>
  <div class="stamp zero">0</div>
  <div class="stamp four">4</div>
  <div class="stamp zero">0</div>
</div>
<div class="world">
  <div class="forward">
    <div class="box">
      <div class="wall"></div>
      <div class="wall"></div>
      <div class="wall"></div>
      <div class="wall"></div>
      <div class="wall"></div>
      <div class="wall"></div>
    </div>
  </div>
</div>

</body>
</html>
